package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.admin.model.Admin;
import com.ytjj.qmyx.admin.model.Menu;
import com.ytjj.qmyx.admin.model.Role;
import com.ytjj.qmyx.admin.model.request.AdminRequest;
import com.ytjj.qmyx.admin.model.request.BankerRequest;
import com.ytjj.qmyx.admin.model.request.UpdateRoleRequest;
import com.ytjj.qmyx.admin.model.response.BankerDataResponse;
import com.ytjj.qmyx.mall.model.Banker;
import com.ytjj.qmyx.mall.model.MenuApi;

import java.util.List;

/**
 * 管理员接口
 *
 *
 * @version 1.0
 *
 */
public interface AdminService {

    Admin getAdminStatus(String account);

    Admin getAdminByEmail(String email);

    List<Menu> getAdminMenuList();

    List<Role> getRoleByEmail(String email);

    List<Menu> getMenuAllByTel(String tel);

    CommonResult addAdmin(Admin admin);

    Banker addBanker(BankerRequest banker);

    String newAddBanker(BankerRequest banker);

    String updateBanker(BankerRequest banker);

    int deleteBanker(Integer id);

    void updateStatusBanker(Integer id, Integer status, String msg);

    String newUpdateStatusBanker(Integer id, Integer status, String msg);

    int updateAdmin(Admin admin);

    int deleteAdmins(Integer id);

    int deleteAdmin(Integer id);

    int updateStatus(Admin admin);

    int checkAdmined(String tel);

    Admin selectAdminById(Integer id);

    CommonPage<Admin> selectList(AdminRequest adminRequest);

    int updateRole(UpdateRoleRequest updateRoleRequest);

    List<Role> getRoleListByAdminId(Integer adminId);

    CommonPage<BankerDataResponse> bankerList(BankerRequest bankerRequest, Admin admin);

    CommonPage bankerLists(BankerRequest bankerRequest, Admin admin);

    void updateHoliday(Integer id);

    Banker selectBankerById(Integer id);

    List<Role> getRoleListByBankerId(Integer bankerId);

    int updateBankerRole(UpdateRoleRequest updateRoleRequest);

    Menu selectMenuByPId(String pId);

    void bankerPutaway(Integer id);

    List<MenuApi> getMenuApiList(Integer roleId);

    List<String> getApiCodeList(Integer roleId);

    void customerServiceTimeHandle(Integer adminId, String email);

    int adminId(String email);

    int addAdminRole(Integer roleId, Integer adminId);

    /**
     * 根据员工id修改状态
     * @param id
     * @param status
     * @return
     */
    int updateStatusById(Integer id,Integer status);
}
